From: Ian Campbell Date: Thu, 31 Mar 2011 17:12:07 +0000 (+0100) Subject: tools: ocaml: xl: propagate simplfied libxl interface to PCI BDFs to bindings. X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=d561caafdc88b8e6d069cbc1c2728d513c59ebed;p=xen.git tools: ocaml: xl: propagate simplfied libxl interface to PCI BDFs to bindings. 22166:251694a87f1d changed the libxl interface to remove the need for users to understand BDF encoding but did not propagate the change to the ocaml bindings. Do that now. Signed-off-by: Ian Campbell Committed-by: Ian Jackson --- diff --git a/tools/ocaml/libs/xl/xl.ml b/tools/ocaml/libs/xl/xl.ml index 0e47a85927..c856eef88b 100644 --- a/tools/ocaml/libs/xl/xl.ml +++ b/tools/ocaml/libs/xl/xl.ml @@ -145,7 +145,9 @@ type vfb_info = type pci_info = { - v : int; (* domain * bus * dev * func multiplexed *) + func : int; + dev : int; + bus : int; domain : int; vdevfn : int; msitranslate : bool; diff --git a/tools/ocaml/libs/xl/xl.mli b/tools/ocaml/libs/xl/xl.mli index 649429638b..fcf4b2e0a9 100644 --- a/tools/ocaml/libs/xl/xl.mli +++ b/tools/ocaml/libs/xl/xl.mli @@ -145,7 +145,9 @@ type vfb_info = type pci_info = { - v : int; (* domain * bus * dev * func multiplexed *) + func : int; + dev : int; + bus : int; domain : int; vdevfn : int; msitranslate : bool; diff --git a/tools/ocaml/libs/xl/xl_stubs.c b/tools/ocaml/libs/xl/xl_stubs.c index 6c442ad818..ab08962bf2 100644 --- a/tools/ocaml/libs/xl/xl_stubs.c +++ b/tools/ocaml/libs/xl/xl_stubs.c @@ -272,30 +272,16 @@ static int device_vfb_val(caml_gc *gc, libxl_device_vfb *c_val, value v) static int device_pci_val(caml_gc *gc, libxl_device_pci *c_val, value v) { - union { - unsigned int value; - struct { - unsigned int reserved1:2; - unsigned int reg:6; - unsigned int func:3; - unsigned int dev:5; - unsigned int bus:8; - unsigned int reserved2:7; - unsigned int enable:1; - }fields; - }u; CAMLparam1(v); - /* FIXME: propagate API change to ocaml */ - u.value = Int_val(Field(v, 0)); - c_val->func = u.fields.func; - c_val->dev = u.fields.dev; - c_val->bus = u.fields.bus; + c_val->func = Int_val(Field(v, 0)); + c_val->dev = Int_val(Field(v, 1)); + c_val->bus = Int_val(Field(v, 2)); - c_val->domain = Int_val(Field(v, 1)); - c_val->vdevfn = Int_val(Field(v, 2)); - c_val->msitranslate = Bool_val(Field(v, 3)); - c_val->power_mgmt = Bool_val(Field(v, 4)); + c_val->domain = Int_val(Field(v, 3)); + c_val->vdevfn = Int_val(Field(v, 4)); + c_val->msitranslate = Bool_val(Field(v, 5)); + c_val->power_mgmt = Bool_val(Field(v, 6)); CAMLreturn(0); }